home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 July / 07_02.iso / software / xq-xsetup / files / setup.exe / {app} / plugins / XQ Startup Group 2.xpl < prev    next >
Text File  |  2002-01-30  |  6KB  |  207 lines

  1. "FILE"="Xteq Systems X-Setup Plugin 5.0"
  2. "TYPE"="9"
  3. "COUNT"="1"
  4. "UIPATH 1"="Startup/Shutdown\Startup\Windows 9x/ME\80) Windows Launch"
  5. "UIPATH 2"="Startup/Shutdown\Startup\Windows NT/2K/XP\60) Windows Launch"
  6. "NAME"=""StartUp" Group (All Users)"
  7. "LANGUAGE"="VBScript"
  8. "VERSION"="2.00"
  9. "TEXT 1"="dⁿdel dumm"
  10. "DESCRIPTION 1"="This plug-in lets you control which programs are currently inside the "StartUp" folder of your Start Menu."
  11. "DESCRIPTION 2"="All items inside this folder are automatically executed when Windows starts." 
  12. "DESCRIPTION 2"="To prevent an item from starting, disable the checkbox next to it."
  13. "DESCRIPTION 3"="Please note: This plug-in will create a folder "Disabled" in your "StartUp" group where all disabled items are stored. Once you have enabled those items again, this "Disabled" folder is deleted."
  14. "DESCRIPTION 4"="To add an item to this list, just point your mouse to this folder in your Start Menu, right-click and select "Open". Next, right-click again and select "New" -> "Shortcut"."
  15. "AUTHOR"="Xteq Systems"
  16. "CONTACTURL"="http://www.xteq.com/"
  17. "COPYRIGHT"="Copyright ⌐ Xteq Systems - All Rights Reserved"
  18. "COMMENT 1"="Thanks to G÷ran ┼berg [abbe.ema@home.se] for the idea"
  19.  
  20.  
  21. ' Where to find the Startup Folder:
  22. sV1="HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Common Startup"
  23.  
  24. Dim iFiles   'conatins how many are currently displayed in the UI
  25. Dim aryFiles() 'contains all the files
  26.  
  27. Dim sPathActive 
  28. Dim sPathInactive
  29.  
  30.  
  31. Sub Plugin_Initialize 
  32.  s=RegReadValue(sV1)
  33.  if len(s)<=0 then
  34.     Call Disable
  35.  else
  36.     if right(s,1)="\" then
  37.        s=left(s,len(s)-1)
  38.     end if
  39.  
  40.     sPathActive=s
  41.  
  42.     ' create the inactive path
  43.     iPos=InStrRev(sPathActive,"\")
  44.     if iPos>0 then
  45.        sName=Right(sPathActive,len(sPathActive)-iPos)
  46.        sPath=Left(sPathActive,iPos)       
  47.        sPathInactive=sPath & "Disabled " & sName & " Items"
  48.        
  49.        Call ReadFiles
  50.     else
  51.        Call Disable()   
  52.        Call MsgError("Unable to retrieve name of Startup Group - can not continue")   
  53.     end if    
  54.  end if
  55.  
  56. End Sub
  57.  
  58.  
  59. Sub ReadFiles
  60.    'first, clear the UI
  61.     for l=1 to iFiles
  62.         Call SetUIElement(l,"")
  63.     next 
  64.  
  65.    'read active items
  66.    dim aryTemp1
  67.    i=FileEnum(sPathActive & "\*.*")
  68.    ReDim aryTemp1(i)
  69.  
  70.    for l=1 to i
  71.        s=FileEnumElement(l)
  72.        aryTemp1(l)=s
  73.    next
  74.  
  75.    'read inactive items
  76.    dim aryTemp2
  77.    i=FileEnum(sPathInactive & "\*.*")
  78.    ReDim aryTemp2(i)
  79.  
  80.    for l=1 to i
  81.        s=FileEnumElement(l)
  82.        aryTemp2(l)=s
  83.    next
  84.  
  85.    '---------------------------------------
  86.    'okay, we now have two arrays (aryTemp2 and aryTemp4) that contain
  87.    'all the items that we need. We now simply need to create ONE array from those two
  88.  
  89.     iFiles=uBound(aryTemp1)+UBound(aryTemp2)
  90.     ReDim aryFiles(iFiles)
  91.     
  92.     for l=1 to UBound(aryTemp1)
  93.         aryFiles(l)=aryTemp1(l)
  94.     next
  95.  
  96.     for i=1 to UBound(aryTemp2)
  97.         aryFiles(UBound(aryTemp1)+i)=aryTemp2(i)
  98.     next 
  99.  
  100.    '--------------------------------------- 
  101.    'finally, update the UI
  102.  
  103.    for l=1 to UBound(aryFiles)
  104.        sItem=aryFiles(l)
  105.  
  106.        iPos=InStrRev(sItem,"\")
  107.        if iPos>0 then
  108.           sName=Right(sItem,len(sItem)-iPos)
  109.        else 
  110.           sName=sItem
  111.        end if
  112.         
  113.        bActivated=0
  114.        if InStr(sItem,sPathInactive)>0 then
  115.           bActivated=false
  116.        else
  117.           bActivated=true
  118.        end if
  119.  
  120.  
  121.        Call SetUIElement(l,sName)
  122.        Call SetUIElementEx(l,bActivated)
  123.    next   
  124. End Sub
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131. Sub Plugin_Apply(ElementIndex,ElementSubIndex)
  132.     bChanges=false
  133.  
  134.     for l=1 to UBound(aryFiles)
  135.         sItem=aryFiles(l)
  136.         bUI=GetUIElementEx(l)   
  137.   
  138.         if InStr(sItem,sPathInactive)>0 then
  139.            bActive=false
  140.         else
  141.            bActive=true
  142.         end if
  143.  
  144.  
  145.        'now check for differences between bReg and bUI
  146.        if bUI=true and bActive=true then
  147.            'do nothing, both activated
  148.         else
  149.            if bUI=false and bActive=false then
  150.               'do nothing, both deactivated
  151.            else
  152.  
  153.               if bUI=true and bActive=false then 
  154.                  'in UI activated, in STARTUP Deactivated ->
  155.                  sOldPath=sItem
  156.                  sNewPath=Replace(sOldPath,sPathInactive,sPathActive) 
  157.               else                
  158.                  'in UI deactivated, in STARTUP activated ->
  159.                  sOldPath=sItem
  160.                  sNewPath=Replace(sOldPath,sPathActive,sPathInactive) 
  161.               end if  
  162.  
  163.               'DebugMsg sOldPath & " ** " & sNewPath
  164.  
  165.               'delete any existing file...
  166.               If FileExists(sNewPath)=true then
  167.                  Call FileDelete(sNewPath)
  168.               end if
  169.               
  170.               'does disabled folder exist?
  171.               If FolderExists(sPathInactive)=false then
  172.                  Call FolderCreate(sPathInactive)
  173.               end if
  174.  
  175.               'copy file
  176.               Call FileCopy(sOldPath,sNewPath)
  177.               Call FileDelete(sOldPath)
  178.  
  179.               'check if we can remove the disabled folder...
  180.               i=FileEnum(sPathInactive & "\*.*")
  181.               if i<=0 then 'folder empty..
  182.                  Call FolderDelete(sPathInactive)
  183.               end if
  184.                
  185.  
  186.               'set flag
  187.               bChanges=true
  188.            end if
  189.         end if
  190.  
  191.     next 
  192.  
  193.  
  194.     if bChanges=true then
  195.        Call ReadFiles
  196.  
  197.        'call the holy Windows API
  198.        Call IndicateSettingChange()
  199.  
  200.     end if
  201. End Sub
  202.  
  203.  
  204.  
  205. Sub Plugin_Terminate 
  206. End Sub
  207.